package bosc.cn.dto.wallet;

import bosc.cn.dto.common.CommonResponse;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import java.math.BigDecimal;
import java.util.List;

@Data
public class WalletListResDTO {

    // 业务操作成功标志
    @NotBlank(message = "业务操作成功标志不能为空")
    @Size(max = 4, message = "业务操作成功标志长度不能超过4")
    private String prcSts;

    // 业务响应信息
    @NotBlank(message = "业务响应信息不能为空")
    @Size(max = 128, message = "业务响应信息长度不能超过128")
    private String prcMsg;

    // 总记录数
    private Long totalNo;

    // 总页数
    private Long totalPage;

    // 钱包列表
    private List<WalletInfoDTO> wltInfoList;

    @Data
    public static class WalletInfoDTO {

        // 钱包ID
        @Size(max = 16, message = "钱包ID长度不能超过16")
        private String wltId;

        // 钱包名称
        @Size(max = 256, message = "钱包名称长度不能超过256")
        private String wltName;

        // 钱包状态
        @Size(max = 4, message = "钱包状态长度不能超过4")
        private String wltSts;

        // 钱包余额
        private BigDecimal wltBal;

        // 钱包余额上限
        private BigDecimal wltBalLmt;

        // 钱包单笔限额
        private BigDecimal sngLmtAmt;

        // 钱包授权日期
        @Size(max = 8, message = "钱包授权日期长度不能超过8")
        private String wltAuthDt;

        public String getWltId() {
            return wltId;
        }

        public void setWltId(String wltId) {
            this.wltId = wltId;
        }

        public String getWltName() {
            return wltName;
        }

        public void setWltName(String wltName) {
            this.wltName = wltName;
        }

        public String getWltSts() {
            return wltSts;
        }

        public void setWltSts(String wltSts) {
            this.wltSts = wltSts;
        }

        public BigDecimal getWltBal() {
            return wltBal;
        }

        public void setWltBal(BigDecimal wltBal) {
            this.wltBal = wltBal;
        }

        public BigDecimal getWltBalLmt() {
            return wltBalLmt;
        }

        public void setWltBalLmt(BigDecimal wltBalLmt) {
            this.wltBalLmt = wltBalLmt;
        }

        public BigDecimal getSngLmtAmt() {
            return sngLmtAmt;
        }

        public void setSngLmtAmt(BigDecimal sngLmtAmt) {
            this.sngLmtAmt = sngLmtAmt;
        }

        public String getWltAuthDt() {
            return wltAuthDt;
        }

        public void setWltAuthDt(String wltAuthDt) {
            this.wltAuthDt = wltAuthDt;
        }
    }

    public String getPrcSts() {
        return prcSts;
    }

    public void setPrcSts(String prcSts) {
        this.prcSts = prcSts;
    }

    public String getPrcMsg() {
        return prcMsg;
    }

    public void setPrcMsg(String prcMsg) {
        this.prcMsg = prcMsg;
    }

    public Long getTotalNo() {
        return totalNo;
    }

    public void setTotalNo(Long totalNo) {
        this.totalNo = totalNo;
    }

    public Long getTotalPage() {
        return totalPage;
    }

    public void setTotalPage(Long totalPage) {
        this.totalPage = totalPage;
    }


    public List<WalletInfoDTO> getWltInfoList() {
        return wltInfoList;
    }

    public void setWltInfoList(List<WalletInfoDTO> wltInfoList) {
        this.wltInfoList = wltInfoList;
    }
}
